#include "Carteira.h"

    /**********************************************************************
        Classe: Carteira
        Funcionalidade: Indica que vacinas o paciente já tomou, e a data
    em que as vacinas foram tomadas
    ***********************************************************************/

Carteira::Carteira() {
    numVacinasAplicadas=0;
}

Carteira::~Carteira() {
}

void Carteira::atualizarCarteira(Vacina * vacina, Date data) {

	vacinasAplicadas.push_back(ItemCarteira(vacina, data));
	numVacinasAplicadas++;
}

bool Carteira::alterarItemCarteira(string nVacina, Date nData){
    list<ItemCarteira>::iterator it;
	for (it = vacinasAplicadas.begin(); it != vacinasAplicadas.end(); it++) {
		if (nVacina == it->getVacinaAplicada()->getDescricao()) {
            it->setDataAplicacao(nData);
			return true;
		}
	}
	return false;
}

ItemCarteira * Carteira::getItemCarteira(string nVacina){
    list<ItemCarteira>::iterator it;
	for (it = vacinasAplicadas.begin(); it != vacinasAplicadas.end(); it++) {
		if (nVacina == it->getVacinaAplicada()->getDescricao()) {
			return &(*it);
		}
	}
	return NULL;
}


bool Carteira::removerItemCarteira(string nVacina){
    list<ItemCarteira>::iterator it;
	for (it = vacinasAplicadas.begin(); it != vacinasAplicadas.end(); it++) {
		if (nVacina == it->getVacinaAplicada()->getDescricao()) {
            vacinasAplicadas.erase(it);
			return true;
		}
	}
	return false;
}

list<ItemCarteira> &Carteira::getListItemCarteira() {
	return vacinasAplicadas;
}



